#ifndef ARRAY_UTIL_H
#define ARRAY_UTIL_H

array_t *allocate_array2(int, svalue_t *);
array_t *explode_string(char *, int, char *, int);
char *implode_string(array_t *, char *, int);
void implode_array(funptr_t *, array_t *, svalue_t *, int);
array_t *users(void);
array_t *slice_array(array_t *, int, int);
array_t *commands(object_t *);
void filter_array(svalue_t *, int);
void filter_string(svalue_t *, int);
array_t *all_inventory(object_t *, int);
void map_string(svalue_t *arg, int num_arg);
void map_array(svalue_t *arg, int num_arg);
array_t *builtin_sort_array(array_t *, int);
array_t *fp_sort_array(array_t *, funptr_t *);
array_t *sort_array(array_t *, char *, object_t *);
array_t *deep_inventory(object_t *, int);
array_t *intersect_array(array_t *, array_t *);
array_t *union_array(array_t *, array_t *);
int match_single_regexp(char *, char *);
array_t *match_regexp(array_t *, char *, int);
array_t *deep_inherit_list(object_t *);
array_t *inherit_list(object_t *);
array_t *children(char *);
array_t *livings(void);
array_t *objects(funptr_t *);
array_t *reg_assoc(char *, array_t *, array_t *, svalue_t *);
array_t *filter(array_t *, funptr_t *, svalue_t *);
array_t *make_unique(array_t *, char *, funptr_t *, svalue_t *);

#endif
